home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 016 / herc.arc / GMAP.ASM < prev    next >
Encoding:
Assembly Source File  |  1986-03-20  |  1.4 KB  |  67 lines

  1. ; GRAPHICS MODE FOR C FUNCTION
  2. ; GRAPHICS MAP PIXEL ROUTINE
  3.  
  4.         name   gmap
  5. ; int gmap(xint, yint);
  6. ; On return extern gaddr is the offset and gmask
  7. ; is the pixel bit mask (flavor: unsigned char)
  8.  
  9.  
  10. public  _gmap, _gmask, _gaddr, _gmap2
  11.  
  12. DGROUP  group   _DATA
  13.         assume  ds:DGROUP
  14.  
  15. _DATA   segment word    public  'DATA'
  16. gx1     dw      0
  17. gy1     dw      0
  18. _gaddr  dw      0000
  19. _gmask  db      80h
  20. _DATA   ends
  21.  
  22. _TEXT   segment byte    public  'CODE'
  23.         assume  cs:_TEXT
  24.  
  25. _gmap   proc    near
  26.         push    bp
  27.         mov     bp, sp
  28.         mov     cx, [bp+4]
  29.         mov     dx, [bp+6]
  30.         call    _gmap2
  31.         mov     sp, bp
  32.         pop     bp
  33.         mov     ax, _gaddr
  34.         ret
  35. _gmap   endp
  36.  
  37. _gmap2  proc    near
  38.         mov     gx1, cx
  39.         mov     ax, dx
  40.         mov     bx, ax
  41.         and     bx, 3
  42.         ror     bx, 1
  43.         ror     bx, 1
  44.         ror     bx, 1
  45.         shr     ax, 1
  46.         shr     ax, 1
  47.         mov     cx, 005ah
  48.         mul     cx
  49.         add     bx, ax
  50.         mov     ax, gx1
  51.         shr     ax, 1
  52.         shr     ax, 1
  53.         shr     ax, 1
  54.         add     bx, ax
  55.         mov     _gaddr, bx
  56.         mov     al, 80h
  57.         mov     cx, gx1
  58.         and     cl, 07
  59.         shr     al, cl
  60.         mov     _gmask, al
  61.         ret
  62. _gmap2  endp
  63.  
  64. _TEXT   ends
  65.         end
  66.  
  67.